home *** CD-ROM | disk | FTP | other *** search
/ Wired for Sound Pro / Wired for Sound Pro CD (Aristosoft, Inc.) (1993).ISO / specific.inc < prev    next >
Text File  |  1993-11-01  |  25KB  |  623 lines

  1. ''
  2. '' CD Blaster / Wired for Sound 3.0 Pro CD-specific install functions
  3. '' Copyright (c) 1993 Aristosoft, Inc.
  4. ''
  5.  
  6. '' Set up product-specific titles, etc.
  7. SUB SetProductTitles STATIC
  8.     SetTitle "Wired for Sound Pro CD"
  9.     WFSAPP$ = "WFS Pro"
  10. END SUB
  11.  
  12.  
  13. FUNCTION InfFile() STATIC AS STRING
  14.     InfFile = "WFS.INF"
  15. END FUNCTION
  16.  
  17.  
  18. FUNCTION MakeInstDir(D$) STATIC AS STRING
  19.  
  20.     '' If we're lucky, this will tell us where we're located
  21.     S$ = GetIniKeyString(WININI$, "Aristosoft", "WFS")
  22.  
  23.     '' If that didn't work, then try this for 2.02
  24.     IF S$ = "" THEN
  25.     S$ = GetIniKeyString(WININI$, "Sound API", "MaleVoice")
  26.     S$ = mid$(S$, 1, len(S$) - len("\VOICE3.VOI"))
  27.     END IF
  28.  
  29.     '' If that didn't work, then we'll punt with the default
  30.     IF S$ = "" THEN
  31.     S$ = D$ + ":\WFSOUND"
  32.     END IF
  33.  
  34.     '' WFSOUND.INF must be in any installed WFS product
  35.     IF EXISTS(MakePath(S$, "WFSOUND.INF")) THEN
  36.     r% = DoMsgBox("An installed copy of Wired for Sound was found in " + S$+ ".", "Wired for Sound", MB_OK)
  37.     END IF
  38.  
  39.     MakeInstDir = S$
  40. END FUNCTION
  41.  
  42.  
  43. SUB AddInfSectionNames(BASE$, TAPPS$, SOUNDS$, VOICES$, BASEINST$, TAPPSINST$, SOUNDSINST$, VOICESINST$) STATIC
  44.  
  45.     '' These are the base files we can install
  46.     AddListItem BASE$, "Base Files"
  47.     SetSymbolValue BASEINST$, GetSymbolValue(BASE$)
  48.  
  49.     '' These are the Talking Apps we can install
  50.     AddListItem TAPPS$, "CD Browser"
  51.     AddListItem TAPPS$, "Color Cursors"
  52.     AddListItem TAPPS$, "Cursor Changer"
  53.     AddListItem TAPPS$, "Groupie"
  54.     AddListItem TAPPS$, "Icon Changer"
  55.     AddListItem TAPPS$, "Intruder Alert"
  56.     AddListItem TAPPS$, "MediaScape Changer"
  57.     AddListItem TAPPS$, "Multimedia Jukebox"
  58.     AddListItem TAPPS$, "Multimedia Screen Saver"
  59.     AddListItem TAPPS$, "Post This!"
  60.     AddListItem TAPPS$, "Talking Calculator"
  61.     AddListItem TAPPS$, "Talking Calendar"
  62.     AddListItem TAPPS$, "Talking Clock"
  63.     AddListItem TAPPS$, "Talking Graveyard"
  64.     AddListItem TAPPS$, "Talking Minesweeper"
  65.     AddListItem TAPPS$, "Talking Monitor"
  66.     AddListItem TAPPS$, "Talking Solitaire"
  67.     AddListItem TAPPS$, "Wallpaper Changer"
  68.     AddListItem TAPPS$, "WFS Sound Editor"
  69.  
  70.     '' By default, we install all Talking Apps
  71.     SetSymbolValue TAPPSINST$, GetSymbolValue(TAPPS$)
  72.  
  73.     '' These are the sounds we can install
  74.     AddListItem SOUNDS$, "Button Sounds"
  75.     AddListItem SOUNDS$, "Funny Sounds"
  76.     AddListItem SOUNDS$, "Human Sounds"
  77.     AddListItem SOUNDS$, "Icon Sounds"
  78.     AddListItem SOUNDS$, "Job Saver Sounds"
  79.     AddListItem SOUNDS$, "Phrase Sounds"
  80.     AddListItem SOUNDS$, "Classical MIDI"
  81.     AddListItem SOUNDS$, "Jazz MIDI"
  82.     AddListItem SOUNDS$, "Misc. MIDI"
  83.     AddListItem SOUNDS$, "New Age MIDI"
  84.     AddListItem SOUNDS$, "Pleasant MIDI"
  85.     AddListItem SOUNDS$, "R & B MIDI"
  86.  
  87.     '' By default, we install all the above
  88.     SetSymbolValue SOUNDSINST$, GetSymbolValue(SOUNDS$)
  89.  
  90.     '' Only include this file if we can find the Star Trek DLL
  91.     st$ = GetIniKeyString(MakePath(WINDIR$, "AD_PREFS.INI"), "After Dark", "Path")
  92.     IF EXISTS(MakePath(st$, "st_res\st_snd.dll")) THEN
  93.     AddListItem SOUNDSINST$, "Star Trek Stubs"
  94.     END IF
  95.  
  96.     '' ...but it's always an option
  97.     AddListItem SOUNDS$, "Star Trek Stubs"
  98.  
  99.     '' The user probably doesn't want all these on the HD by default
  100.     AddListItem SOUNDS$, "Video Samples"
  101.     AddListItem SOUNDS$, "Animal Sounds"
  102.     AddListItem SOUNDS$, "Cartoon Sounds"
  103.     AddListItem SOUNDS$, "Destructive Sounds"
  104.     AddListItem SOUNDS$, "Drums and Cymbals"
  105.     AddListItem SOUNDS$, "Equipment Sounds"
  106.     AddListItem SOUNDS$, "People Sounds"
  107.     AddListItem SOUNDS$, "Illness Sounds"
  108.     AddListItem SOUNDS$, "Impact Sounds"
  109.     AddListItem SOUNDS$, "Musical Sounds"
  110.     AddListItem SOUNDS$, "Popping Sounds"
  111.     AddListItem SOUNDS$, "Ringing Sounds"
  112.     AddListItem SOUNDS$, "Ripping and Tearing"
  113.     AddListItem SOUNDS$, "Nuts & Bolts"
  114.     AddListItem SOUNDS$, "Sports Sounds"
  115.     AddListItem SOUNDS$, "Word Sounds"
  116.     AddListItem SOUNDS$, "Misc. Sounds"
  117.     AddListItem SOUNDS$, "Bach MIDI"
  118.     AddListItem SOUNDS$, "Beethoven MIDI"
  119.     AddListItem SOUNDS$, "Handel MIDI"
  120.     AddListItem SOUNDS$, "Long Classical MIDI"
  121.     AddListItem SOUNDS$, "Mozart MIDI"
  122.     AddListItem SOUNDS$, "Tchaikovsky MIDI"
  123.     AddListItem SOUNDS$, "Vivaldi MIDI"
  124.  
  125.     '' We can install all these voices and faces
  126.     '' AddListItem VOICES$, "Female Voice"
  127.     AddListItem VOICES$, "Make-Your-Own Voice"
  128.     AddListItem VOICES$, "Male Voice (compressed)"
  129.     AddListItem VOICES$, "Computer Face"
  130.     AddListItem VOICES$, "Male Face"
  131.     AddListItem VOICES$, "Female Face"
  132.     AddListItem VOICES$, "WFS Face"
  133.  
  134.     '' By default, we install all the above
  135.     SetSymbolValue VOICESINST$, GetSymbolValue(VOICES$)
  136.  
  137.     '' These aren't in the default install
  138.     AddListItem VOICES$, "NY Female Voice"
  139.     AddListItem VOICES$, "NY Male Voice"
  140.     AddListItem VOICES$, "Southern Female Voice (compressed)"
  141.     AddListItem VOICES$, "Southern Male Voice (compressed)"
  142.  
  143.     AddListItem VOICES$, "British Female Voice (compressed)"
  144.     AddListItem VOICES$, "Sultry Female Face"
  145.     AddListItem VOICES$, "Sultry Female Voice (compressed)"
  146.  
  147.     AddListItem VOICES$, "Female Chinese Voice"
  148.     AddListItem VOICES$, "Female German Voice (compressed)"
  149.     AddListItem VOICES$, "Female Italian Voice (compressed)"
  150.     AddListItem VOICES$, "Female Japanese Voice (compressed)"
  151.     AddListItem VOICES$, "Female Spanish Voice (compressed)"
  152.     AddListItem VOICES$, "Female Swedish Voice (compressed)"
  153.  
  154.     AddListItem VOICES$, "Male French Voice (compressed)"
  155.  
  156.     AddListItem VOICES$, "Arnold Blaster Voice (compressed)"
  157.     AddListItem VOICES$, "Arnold Blaster Face"
  158.     AddListItem VOICES$, "Clinton Blaster Voice (compressed)"
  159.     AddListItem VOICES$, "Clinton Blaster Face"
  160.     AddListItem VOICES$, "Harold Blaster Voice (compressed)"
  161.     AddListItem VOICES$, "Harold Blaster Face"
  162.     AddListItem VOICES$, "H. George Blaster Voice (compressed)"
  163.     AddListItem VOICES$, "H. George Blaster Face"
  164.     AddListItem VOICES$, "H. Ross Blaster Voice (compressed)"
  165.     AddListItem VOICES$, "H. Ross Blaster Face"
  166.     AddListItem VOICES$, "H. Simmons Blaster Voice (compressed)"
  167.     AddListItem VOICES$, "H. Simmons Blaster Face"
  168.     AddListItem VOICES$, "Marge Blaster Voice (compressed)"
  169.     AddListItem VOICES$, "Marge Blaster Face"
  170.     AddListItem VOICES$, "Nerd Face"
  171.     AddListItem VOICES$, "Synthesized Voice"
  172.  
  173. END SUB
  174.  
  175.  
  176. SUB RecalcPath STATIC
  177.     CursorSave% = ShowWaitCursor()
  178.     RecalcOptFiles BASEFILES
  179.     RecalcOptFiles SOUNDFILES
  180.     RecalcOptFiles TAPPFILES
  181.     RecalcOptFiles VOICEFILES
  182.     RestoreCursor CursorSave%
  183. END SUB
  184.  
  185.  
  186. SUB AddOptFiles STATIC
  187.     AddOptFilesToCopyList BASEFILES
  188.     AddOptFilesToCopyList TAPPFILES
  189.     AddOptFilesToCopyList SOUNDFILES
  190.     AddOptFilesToCopyList VOICEFILES
  191. END SUB
  192.  
  193.  
  194. SUB AddOptFilesToCopyList (ftype%) STATIC
  195.  
  196.     IF GetListItem(CHECKSTATES$, ftype%) = "ON" THEN
  197.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  198.     IF ftype% = BASEFILES THEN
  199.         ''Base files
  200.         l% = GetListLength(BASEINST$)
  201.         FOR i% = 1 TO l% STEP 1
  202.         AddSectionFilesToCopyList GetListItem(BASEINST$, i%), MakePath(SrcDir$, "WFS"), DEST$
  203.         NEXT i%
  204.  
  205.         '' Install default voices and faces
  206.         AddSectionFilesToCopyList "Null Face", SrcDir$, DEST$
  207.         AddSectionFilesToCopyList "Female Voice (compressed)", SrcDir$, DEST$
  208.         AddSectionFilesToCopyList "Read Me", SrcDir$, DEST$
  209.  
  210.         '' Install Video for Windows runtime
  211.         AddSectionFilesToCopyList "Media Player", MakePath(SrcDir$, "WFS\VFW"), WINDIR$
  212.         AddSectionFilesToCopyList "VFW Runtime", MakePath(SrcDir$, "WFS\VFW"), SYSDIR$
  213.         AddSectionFilesToCopyList "Codecs", MakePath(SrcDir$, "WFS\VFW"), WINDIR$
  214.  
  215.         AddSpecialFileToCopyList "System Files", "CTL3D", MakePath(SrcDir$, "WFS"), MakePath(SYSDIR$, "CTL3D.DLL")
  216.         AddSpecialFileToCopyList "System Files", "DIB", MakePath(SrcDir$, "WFS"), MakePath(SYSDIR$, "DIB.DRV")
  217.  
  218.         IF INSTDSOUND% OR EXISTS(MakePath(SYSDIR$, "DSOUND.DLL")) THEN
  219.         AddSpecialFileToCopyList "DSOUND Files", "DSOUND", SrcDir$, MakePath(SYSDIR$, "DSOUND.DLL")
  220.         AddSpecialFileToCopyList "DSOUND Files", "DSCPL", SrcDir$, MakePath(SYSDIR$, "DSCPL.CPL")
  221.         END IF
  222.  
  223.     ELSEIF ftype% = TAPPFILES THEN
  224.         l% = GetListLength(TAPPSINST$)
  225.         FOR i% = 1 TO l% STEP 1
  226.         AddSectionFilesToCopyList GetListItem(TAPPSINST$, i%), MakePath(SrcDir$, "WFS"), DEST$
  227.         NEXT i%
  228.  
  229.         IF StringInList("Talking Calculator", TAPPSINST$) THEN
  230.         AddSpecialFileToCopyList "System Files", "LCD Font (VGA)", MakePath(SrcDir$, "WFS"), MakePath(SYSDIR$, "LCD.FON")
  231.         AddSpecialFileToCopyList "System Files", "LCD Font (8514a)", MakePath(SrcDir$, "WFS"), MakePath(SYSDIR$, "LCDBIG.FON")
  232.         END IF
  233.  
  234.         IF StringInList("Color Cursors", TAPPSINST$) THEN
  235.         AddSectionFilesToCopyList "Cursors", SrcDir$, DEST
  236.         AddSpecialFileToCopyList "System Files", "CCSHELL", MakePath(SrcDir$, "WFS"), MakePath(SYSDIR$, "CCSHELL.DRV")
  237.         END IF
  238.  
  239.         IF StringInList("Jukebox", TAPPSINST$) THEN
  240.         AddSpecialFileToCopyList "System Files", "MMSSSCR", MakePath(SrcDir$, "WFS"), MakePath(WINDIR$, "MMSSSCR.SCR")
  241.         END IF
  242.  
  243.         IF StringInList("Wallpaper Changer", TAPPSINST$) THEN
  244.         AddSectionFilesToCopyList "Patterns", SrcDir$, DEST$
  245.         END IF
  246.  
  247.     ELSEIF ftype% = SOUNDFILES THEN
  248.         l% = GetListLength(SOUNDSINST$)
  249.         FOR i% = 1 TO l% STEP 1
  250.         AddSectionFilesToCopyList GetListItem(SOUNDSINST$, i%), SrcDir$, DEST$
  251.         NEXT i%
  252.  
  253.     ELSEIF ftype% = VOICEFILES THEN
  254.         l% = GetListLength(VOICESINST$)
  255.         FOR i% = 1 TO l% STEP 1
  256.         AddSectionFilesToCopyList GetListItem(VOICESINST$, i%), SrcDir$, DEST$
  257.         NEXT i%
  258.     END IF
  259.     SrcDir$ = ""
  260.     END IF
  261.  
  262. END SUB
  263.  
  264.  
  265. SUB SetDriveStatus STATIC
  266.     FITS% = 0
  267.     drive$ = MID$(DEST$, 1, 1)
  268.     ndrive% = ASC(ucase$(drive$)) - ASC("A") + 1
  269.  
  270.     cost& = VAL(GetListItem(BASENEEDS$, ndrive%))
  271.     cost& = cost& + VAL(GetListItem(SOUNDNEEDS$, ndrive%))
  272.     cost& = cost& + VAL(GetListItem(TAPPNEEDS$, ndrive%))
  273.     cost& = cost& + VAL(GetListItem(VOICENEEDS$, ndrive%))
  274.  
  275.     free& = GetFreeSpaceForDrive(drive$)
  276.     IF cost& > free& THEN
  277.     FITS% = 1
  278.     END IF
  279.     ReplaceListItem DRIVETEXT$, 1, drive$ + ":"
  280.     ReplaceListItem DRIVETEXT$, 2, STR$(cost& / 1024) + " K"
  281.     ReplaceListItem DRIVETEXT$, 3, STR$(free& / 1024) + " K"
  282.  
  283.     IF drive$ = WINDRIVE$ THEN
  284.     ReplaceListItem DRIVETEXT$, 4, ""
  285.     ReplaceListItem DRIVETEXT$, 5, ""
  286.     ReplaceListItem DRIVETEXT$, 6, ""
  287.     ELSE
  288.     ndrive% = ASC(ucase$(WINDRIVE$)) - ASC("A") + 1
  289.  
  290.     cost& = VAL(GetListItem(BASENEEDS$, ndrive%))
  291.     cost& = cost& + VAL(GetListItem(SOUNDNEEDS$, ndrive%))
  292.     cost& = cost& + VAL(GetListItem(TAPPNEEDS$, ndrive%))
  293.     cost& = cost& + VAL(GetListItem(VOICENEEDS$, ndrive%))
  294.  
  295.     IF cost& = 0 THEN
  296.         ReplaceListItem DRIVETEXT$, 4, ""
  297.         ReplaceListItem DRIVETEXT$, 5, ""
  298.         ReplaceListItem DRIVETEXT$, 6, ""
  299.     ELSE
  300.         free& = GetFreeSpaceForDrive(WINDRIVE$)
  301.         IF cost& > free& THEN
  302.         FITS% = 1
  303.         END IF
  304.         ReplaceListItem DRIVETEXT$, 4, WINDRIVE$ + ":"
  305.         ReplaceListItem DRIVETEXT$, 5, STR$(cost& / 1024) + " K"
  306.         ReplaceListItem DRIVETEXT$, 6, STR$(free& / 1024) + " K"
  307.     END IF
  308.     END IF
  309. END SUB
  310.  
  311.  
  312. '' Add billboard dialogs for this app
  313. SUB AddBillboards STATIC
  314.     AddToBillboardList CUIDLL$, BBD1, "FModelessDlgProc", 100
  315.     AddToBillboardList CUIDLL$, BBD2, "FModelessDlgProc", 100
  316.     AddToBillboardList CUIDLL$, BBD3, "FModelessDlgProc", 100
  317.     AddToBillboardList CUIDLL$, BBD4, "FModelessDlgProc", 100
  318.     AddToBillboardList CUIDLL$, BBD5, "FModelessDlgProc", 100
  319.     AddToBillboardList CUIDLL$, BBD6, "FModelessDlgProc", 100
  320. END SUB
  321.  
  322.  
  323. CONST IDC_OWNER = 104
  324. CONST IDC_WORKPLACE = 106
  325. CONST RT_RCDATA = 10
  326.  
  327. SUB ConfigureApps STATIC
  328.  
  329.     '' This is so Fixer can find where we're installed
  330.     CreateIniKeyValue WININI$, "Aristosoft", "WFS", DEST$, cmoOverwrite
  331.  
  332.     '' This is the name of the group we'll install into
  333.     GROUP$ = "WFS Pro CD"
  334.     GROUP1$ = "WFS Utilities"
  335.     GROUP2$ = "Talking Apps"
  336.  
  337.     '' Configure base applications
  338.     IF GetListItem(CHECKSTATES$, BASEFILES) = "ON" THEN
  339.     '' Create file pointers with base setup
  340.     IF EXISTS(MakePath(DEST$, "location.cdf")) THEN
  341.         r% = DoMsgBox("Do you want to rebuild the Virtual CD pointers?", "Wired for Sound", MB_YESNO)
  342.         IF r% = IDNO THEN
  343.         GOTO MakeGroup
  344.         END IF
  345.     END IF
  346.  
  347.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  348.     res% = Run("cdfinst.exe " + MakePath(SrcDir$, "FILES.LOC") + " " + SrcDir$ + " " + DEST$)
  349.     SrcDir$ = ""
  350.  
  351. MakeGroup:
  352.     '' Create a group for us...
  353.     CreateProgmanGroup GROUP$, "", cmoNone
  354.     CreateProgmanGroup GROUP1$, "", cmoNone
  355.     CreateProgmanGroup GROUP2$, "", cmoNone
  356.  
  357.     '' Setup WFS Pro
  358.     CreateProgmanItem GROUP$, WFSAPP$, MakePath(DEST$, "wfsound.exe"), "", cmoOverwrite
  359.     CreateProgmanItem GROUP$, "Configuration Editor", MakePath(DEST$, "wfsfix.exe"), "", cmoOverwrite
  360.  
  361.     CreateProgmanItem GROUP$, "Read Me!", "write.exe " + MakePath(DEST$, "readme.wri"), "", cmoOverwrite
  362.  
  363.  
  364.     INI$ = MakePath(DEST$, "FACE.INI")
  365.     CreateIniKeyValue INI$, "Face", "WFSOUND.EXE", "+NULLFACE.FAC", cmoNone
  366.  
  367.     IF INSTDSOUND% THEN
  368.         CreateProgmanItem GROUP$, "DSOUND Info", "notepad.exe " + MakePath(DEST$, "dsound.txt"), "", cmoOverwrite
  369.     END IF
  370.  
  371.     CreateProgmanItem GROUP1$, "Media Manager", MakePath(DEST$, "sndmnger.exe"), "", cmoOverwrite
  372.  
  373.     '' Setup up default association file
  374.     CreateIniKeyValue MakePath(DEST$, "WFSOUND.INF"), "WFSound", "ActiveProfile", MakePath(DEST$, "DEFAULT.WFS"), cmoNone
  375.  
  376.     INI$ = MakePath(DEST$, "FACE.INI")
  377.     CreateIniKeyValue INI$, "Face", "WFSOUND.EXE", "+NULLFACE.FAC", cmoNone
  378.  
  379.     ''Turn on icon events only if we support the shell
  380.     s$ = LCASE$(GetIniKeyString(SYSINI$, "boot", "shell"))
  381.     IF INSTR(s$, "progman.exe") THEN
  382.         i$ = "1"
  383.     ELSEIF INSTR(s$, "ndw.exe") THEN
  384.         i$ = "1"
  385.     ELSEIF INSTR(s$, "wndt.exe") THEN
  386.         i$ = "1"
  387.     ELSE
  388.         i$ = "0"
  389.     END IF
  390.     CreateIniKeyValue MakePath(DEST$, "DEFAULT.WFS"), "Status", "Icon", i$, cmoNone
  391.     s$ = ""
  392.     i$ = ""
  393.  
  394.     '' Disable Win 3.1 system startup and exit sounds
  395.     s$ = GetIniKeyString(WININI$, "Sounds", "SystemStart")
  396.     CreateIniKeyValue WININI$, "Sounds", "OldSystemStart", s$, cmoOverwrite
  397.     CreateIniKeyValue WININI$, "Sounds", "SystemStart", "<none>,System Start", cmoOverwrite
  398.  
  399.     s$ = GetIniKeyString(INI$, "Sounds", "SystemExit")
  400.     CreateIniKeyValue WININI$, "Sounds", "OldSystemExit", s$, cmoOverwrite
  401.     CreateIniKeyValue WININI$, "Sounds", "SystemExit", "<none>,System Exit", cmoOverwrite
  402.  
  403.     '' Remove vox.drv
  404.     IF LCASE$(GetIniKeyString(SYSINI$, "drivers", "wavemapper")) = "vox.drv" THEN
  405.         s$ = GetIniKeyString(SYSINI$, "drivers", "vox.wavemapper")
  406.         CreateIniKeyValue SYSINI$, "drivers", "wavemapper", s$, cmoOverwrite
  407.     END IF
  408.  
  409.     '' Disable speech synthesis support by default
  410.     CreateIniKeyValue WININI$, "Sound API", "NoSynth", "1", cmoNone
  411.  
  412.     ''Stamp the WFSABOUT resources
  413.     IF len(OWNER$) > 0 THEN
  414.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_OWNER, OWNER$ + chr$(0), len(OWNER$) + 1
  415.     ELSE
  416.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_OWNER, " " + chr$(0), 2
  417.     END IF
  418.     IF len(WORKPLACE$) > 0 THEN
  419.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_WORKPLACE, WORKPLACE$ + chr$(0), len(WORKPLACE$) + 1
  420.     ELSE
  421.         StampResource "Base Files", "WFS About", DEST$, RT_RCDATA, IDC_WORKPLACE, " " + chr$(0), 2
  422.     END IF
  423.  
  424.     '' Setup Video for Windows
  425.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.MSVC", "msvidc.drv", cmoNone
  426.     CreateIniKeyValue SYSINI$, "Drivers", "VIDC.RT21", "indeo.drv", cmoNone
  427.     CreateIniKeyValue SYSINI$, "mci", "AVIVideo", "mciavi.drv", cmoNone
  428.     CreateIniKeyValue WININI$, "mci extensions", "avi", "AVIVideo", cmoNone
  429.  
  430.     res% = Run("regedit.exe /s " + MakePath(WINDIR$, "mplayer.reg"))
  431.  
  432.     END IF
  433.  
  434.     '' Configure Talking Applications
  435.     IF GetListItem(CHECKSTATES$, TAPPFILES) = "ON" THEN
  436.  
  437.     IF StringInList("CD Browser", TAPPSINST$) THEN
  438.         CreateProgmanItem GROUP$, "CD Browser", MakePath(DEST$, "browser.exe"), "", cmoOverwrite
  439.     END IF
  440.  
  441.     IF StringInList("Multimedia Screen Saver", TAPPSINST$) THEN
  442.         CreateProgmanItem GROUP$, "Multimedia Screen Saver", MakePath(DEST$, "mmssaver.exe"), "", cmoOverwrite
  443.         CreateIniKeyValue WININI$, "Aristosoft", "ScreenSaver", MakePath(DEST$, "mmssaver.exe"), cmoOverwrite
  444.  
  445.         INI$ = MakePath(DEST$, "MMSSAVER.INI")
  446.         CreateIniKeyValue INI$, "Settings", "SplFile", MakePath(DEST$, "default.spl"), cmoNone
  447.     END IF
  448.  
  449.     IF StringInList("Multimedia Jukebox", TAPPSINST$) THEN
  450.         CreateProgmanItem GROUP$, "Multimedia Jukebox", MakePath(DEST$, "mmjbox.exe"), "", cmoOverwrite
  451.  
  452.         INI$ = MakePath(DEST$, "MMJBOX.INI")
  453.         CreateIniKeyValue INI$, "Settings", "BoxFile", MakePath(DEST$, "default.box"), cmoNone
  454.     END IF
  455.  
  456.     IF StringInList("Wallpaper Changer", TAPPSINST$) THEN
  457.         CreateProgmanItem GROUP$, "Wallpaper Changer", MakePath(DEST$, "wally.exe"), "", cmoOverwrite
  458.         INI$ = MakePath(DEST$, "WALLY.INI")
  459.         CreateIniKeyValue INI$, "Settings", "WallFile", MakePath(DEST$, "default.wal"), cmoNone
  460.     END IF
  461.  
  462.     IF StringInList("MediaScape Changer", TAPPSINST$) THEN
  463.         CreateProgmanItem GROUP$, "MediaScape Changer", MakePath(DEST$, "scape.exe"), "", cmoOverwrite
  464.     END IF
  465.  
  466.     IF StringInList("Icon Changer", TAPPSINST$) THEN
  467.         CreateProgmanItem GROUP1$, "Icon Changer", MakePath(DEST$, "iconplus.exe"), "", cmoOverwrite
  468.     END IF
  469.  
  470.     IF StringInList("Color Cursors", TAPPSINST$) THEN
  471.         CreateProgmanItem GROUP1$, "Color Cursors", MakePath(DEST$, "ccset.exe"), "", cmoOverwrite
  472.         CreateProgmanItem GROUP1$, "Color Cursor Configuration Utility", MakePath(DEST$, "ccconfig.exe"), "", cmoOverwrite
  473.     END IF
  474.  
  475.     IF StringInList("Cursor Changer", TAPPSINST$) THEN
  476.         CreateProgmanItem GROUP1$, "Cursor Changer", MakePath(DEST$, "cursor.exe") + " /foo /bar", "", cmoOverwrite
  477.     END IF
  478.  
  479.     IF StringInList("Talking Solitaire", TAPPSINST$) THEN
  480.         CreateProgmanItem GROUP2$, "Talking Solitaire", MakePath(DEST$, "tsol.exe"), "", cmoOverwrite
  481.         CreateProgmanItem GROUP2$, "How to Cheat at Solitaire", "winhelp " + MakePath(DEST$, "tsol.hlp"), "", cmoOverwrite
  482.         INI$ = MakePath(DEST$, "VOICE.INI")
  483.         CreateIniKeyValue INI$, "Voice Library", "TSOL.EXE", "+female.voi", cmoNone
  484.         INI$ = MakePath(DEST$, "FACE.INI")
  485.         CreateIniKeyValue INI$, "Face", "TSOL.EXE", "+NULLFACE.FAC", cmoNone
  486.     END IF
  487.  
  488.     IF StringInList("Talking Minesweeper", TAPPSINST$) THEN
  489.         CreateProgmanItem GROUP2$, "Talking Minesweeper", MakePath(DEST$, "tmine.exe"), "", cmoOverwrite
  490.         CreateProgmanItem GROUP2$, "How to Win Minesweeper", "winhelp " + MakePath(DEST$, "tmine.hlp"), "", cmoOverwrite
  491.     END IF
  492.  
  493.     IF StringInList("Talking Monitor", TAPPSINST$) THEN
  494.         INI$ = MakePath(DEST$, "TMON.INI")
  495.         CreateIniKeyValue INI$, "Talking Monitor", "LowResources", MakePath(DEST$, "SOUNDS\PHRASES\WARNING.wav"), cmoNone
  496.         CreateIniKeyValue INI$, "Talking Monitor", "LowMemory", MakePath(DEST$, "SOUNDS\PHRASES\WARNING.wav"), cmoNone
  497.         CreateIniKeyValue INI$, "Talking Monitor", "LowDiskSpace", MakePath(DEST$, "SOUNDS\PHRASES\DISKLOW.wav"), cmoNone
  498.         CreateProgmanItem GROUP2$, "Talking Monitor", MakePath(DEST$, "tmon.exe"), "", cmoOverwrite
  499.         INI$ = MakePath(DEST$, "VOICE.INI")
  500.         CreateIniKeyValue INI$, "Voice Library", "TMON.EXE", "+female.voi", cmoNone
  501.         INI$ = MakePath(DEST$, "FACE.INI")
  502.         CreateIniKeyValue INI$, "Face", "TMON.EXE", "+NULLFACE.FAC", cmoNone
  503.     END IF
  504.  
  505.     IF StringInList("Talking Graveyard", TAPPSINST$) THEN
  506.         INI$ = MakePath(DEST$, "TGRAVE.INI")
  507.         CreateIniKeyValue INI$, "Settings", "BurySoundFile", MakePath(DEST$, "SOUNDS\FUNNYSND\CHL_AARG.wav"), cmoNone
  508.         CreateIniKeyValue INI$, "Settings", "KillSoundFile", MakePath(DEST$, "SOUNDS\HUMANSND\ELAUGH.wav"), cmoNone
  509.         CreateProgmanItem GROUP2$, "Talking Graveyard", MakePath(DEST$, "tgrave.exe"), "", cmoOverwrite
  510.     END IF
  511.  
  512.     IF StringInList("Talking Clock", TAPPSINST$) THEN
  513.         CreateProgmanItem GROUP2$, "Talking Clock", MakePath(DEST$, "tclock.exe"), "", cmoOverwrite
  514.         INI$ = MakePath(DEST$, "VOICE.INI")
  515.         CreateIniKeyValue INI$, "Voice Library", "TCLOCK.EXE", "+female.voi", cmoNone
  516.         INI$ = MakePath(DEST$, "FACE.INI")
  517.         CreateIniKeyValue INI$, "Face", "TCLOCK.EXE", "+NULLFACE.FAC", cmoNone
  518.     END IF
  519.  
  520.     IF StringInList("Talking Calendar", TAPPSINST$) THEN
  521.         CreateProgmanItem GROUP2$, "Talking Calendar", MakePath(DEST$, "tcal.exe"), "", cmoOverwrite
  522.         INI$ = MakePath(DEST$, "VOICE.INI")
  523.         CreateIniKeyValue INI$, "Voice Library", "TCAL.EXE", "+female.voi", cmoNone
  524.         INI$ = MakePath(DEST$, "FACE.INI")
  525.         CreateIniKeyValue INI$, "Face", "TCAL.EXE", "+NULLFACE.FAC", cmoNone
  526.     END IF
  527.  
  528.     IF StringInList("Talking Clock", TAPPSINST$) OR StringInList("Talking Calendar", TAPPSINST$) THEN
  529.         INI$ = MakePath(DEST$, "SCHEDAPI.INI")
  530.         CreateIniKeyValue INI$, "Settings", "HolidayFile", MakePath(DEST$, "TCAL.HOL"), cmoNone
  531.         CreateIniKeyValue INI$, "Settings", "DefaultApptBook", MakePath(DEST$, "DEFAULT.APP"), cmoNone
  532.     END IF
  533.  
  534.     IF StringInList("Talking Calculator", TAPPSINST$) THEN
  535.         CreateProgmanItem GROUP2$, "Talking Calculator", MakePath(DEST$, "tcalc.exe"), "", cmoOverwrite
  536.         CreateIniKeyValue WININI$, "FONTS", "LCD (VGA Res)", "lcd.fon", cmoNone
  537.         CreateIniKeyValue WININI$, "FONTS", "LCD (8514a Res)", "lcdbig.fon", cmoNone
  538.          INI$ = MakePath(DEST$, "VOICE.INI")
  539.          CreateIniKeyValue INI$, "Voice Library", "TCALC.EXE", "+female.voi", cmoNone
  540.          INI$ = MakePath(DEST$, "FACE.INI")
  541.          CreateIniKeyValue INI$, "Face", "TCALC.EXE", "+NULLFACE.FAC", cmoNone
  542.     END IF
  543.  
  544.     IF StringInList("WFS Sound Editor", TAPPSINST$) THEN
  545.         CreateProgmanItem GROUP1$, "WFS Edit", MakePath(DEST$, "wfsedit.exe"), "", cmoOverwrite
  546.     END IF
  547.  
  548.     IF StringInList("Intruder Alert", TAPPSINST$) THEN
  549.         INI$ = MakePath(DEST$, "ALERT.INI")
  550.         CreateIniKeyValue INI$, "Settings", "AlarmSound", MakePath(DEST$, "SOUNDS\FUNNYSND\ALARM.wav"), cmoNone
  551.         CreateProgmanItem GROUP2$, "Intruder Alert", MakePath(DEST$, "alert.exe"), "", cmoOverwrite
  552.         CreateProgmanItem GROUP2$, "Intruder Alert Documentation", "write.exe " + MakePath(DEST$, "alert.wri"), "", cmoOverwrite
  553.     END IF
  554.  
  555.     IF StringInList("Groupie", TAPPSINST$) THEN
  556.         CreateProgmanItem GROUP1$, "Groupie", MakePath(DEST$, "groupie.exe"), "", cmoOverwrite
  557.         CreateProgmanItem GROUP1$, "Groupie Documentation", "write.exe " + MakePath(DEST$, "groupie.wri"), "", cmoOverwrite
  558.     END IF
  559.  
  560.     IF StringInList("Post This!", TAPPSINST$) THEN
  561.         CreateProgmanItem GROUP1$, "Post This!", MakePath(DEST$, "postit.exe"), "", cmoOverwrite
  562.         CreateProgmanItem GROUP1$, "Post This! Documentation", "write.exe " + MakePath(DEST$, "postit.wri"), "", cmoOverwrite
  563.     END IF
  564.  
  565.     END IF
  566.  
  567.     '' Perform sound file installation
  568.     IF GetListItem(CHECKSTATES$, SOUNDFILES) = "ON" THEN
  569.     IF StringInList("Star Trek Stubs", SOUNDSINST$) THEN
  570.         ''Set the StarTrek .ESF pointer variable correctly...
  571.         path$ = GetIniKeyString(MakePath(WINDIR$, "AD_PREFS.INI"), "After Dark", "Path")
  572.         IF path$ <> "" THEN
  573.         path$ = MakePath(path$, "st_res\st_snd.dll")
  574.         CreateIniKeyValue WININI$, "Sound API", "StarTrek", path$, cmoOverwrite
  575.         END IF
  576.     END IF
  577.     END IF
  578.  
  579.     '' Install DSOUND.DLL as the wave driver if there isn't one already, somewhere...
  580.     IF INSTDSOUND% AND EXISTS(MakePath(SYSDIR$, "DSOUND.DLL")) THEN
  581.     CreateIniKeyValue SYSINI$, "drivers", "wave", "DSOUND.DLL", cmoOverwrite
  582.     END IF
  583. END SUB
  584.  
  585.  
  586.  
  587. '' Remove all files and directories...
  588.  
  589. SUB DoUninstall STATIC
  590.     res% = sndPlaySound(MakePath(INSTSNDDIR$, "areusure.wav"), 3)
  591.     IF IDYES = DoMsgBox("Are you sure you want to remove Wired for Sound Pro CD from your system?", "Wired for Sound", MB_YESNO) THEN
  592.     DEST$ = GetIniKeyString(WININI$, "Aristosoft", "WFS")
  593.     IF DEST$ <> "" THEN
  594.         old% = ShowWaitCursor()
  595.  
  596.         SendProgmanCommand "[DeleteGroup(""WFS Pro CD"")]"
  597.         SendProgmanCommand "[DeleteGroup(""WFS Utilities"")]"
  598.         SendProgmanCommand "[DeleteGroup(""Talking Apps"")]"
  599.  
  600.         KillFiles DEST$
  601.  
  602.         RemoveIniSection WININI$, "Sound API", cmoNone
  603.  
  604.         '' Reset default startup and exit sounds
  605.         s$ = GetIniKeyString(WININI$, "Sounds", "OldSystemStart")
  606.         RemoveIniKey WININI$, "Sounds", "OldSystemStart", cmoNone
  607.         CreateIniKeyValue WININI$, "Sounds", "SystemStart", s$, cmoOverwrite
  608.  
  609.         s$ = GetIniKeyString(WININI$, "Sounds", "OldSystemExit")
  610.         RemoveIniKey WININI$, "Sounds", "OldSystemExit", cmoNone
  611.         CreateIniKeyValue WININI$, "Sounds", "SystemExit", s$, cmoOverwrite
  612.  
  613.         RestoreCursor old%
  614.  
  615.         i% = DoMsgBox("Wired for Sound Pro CD has been removed.  You can run Setup later to re-install it.", "Wired for Sound", MB_OK)
  616.  
  617.         END
  618.     ELSE
  619.         i% = DoMsgBox("Wired for Sound Pro CD is not installed or cannot be found!", "Wired for Sound", MB_OK)
  620.     END IF
  621.     END IF
  622. END SUB
  623.